The present invention relates to computer system software architectures and more particularly to a layered, object-oriented software architecture for use in embedded computer systems.
Programming of computer systems is commonly achieved through computer software that is stored and executed by the computer in a predefined manner to achieve the intended operation or functionality of the computer system. Many forms of programming languages exist that can be used to describe specific operations or functions, which are then communicated to the computer system in a known manner to realize the intended operation or functionality. Even in rudimentary computer systems, certain rules exist that create an environment for such programming. Within the particular environment, a skilled programmer can develop computer software programs for execution on the computer system. Computer systems that require some form of programmed control should include a framework of the environment for such programming.
One form of computer programming technique or type of computer language that has become popular recently is called object-oriented programming. Through the creation of a hierarchy of software "objects" a skilled programmer can describe the basic and more complicated functions intended for a target computer system. Objects are typically instances of physical or logical entities in the computer system. Real world objects are typically used to model the system domain, and non-real world objects are used as modeling tools. Objects are also commonly grouped into classes of related objects, and each object is therefore an instance of an object class. Some presently known object-oriented programming languages include Ada, C++, Smalltalk, and Java to name a few. Programs written in these or other object-oriented languages operate within a predefined framework or environment to control various computer systems. A library of objects thus represents a collection of self-contained software routines for the processes and operations of the intended computer system. Basic objects that exist for rudimentary functions can be combined through software programs to achieve higher levels of functionality.
Embedded computer systems have their own programming needs based of the hardware components of each specific system. Typical airframe or aircraft environments include a host of electronic components and systems that are used in the operation of the aircraft. Examples of certain electrical subsystems include flight control, engine monitoring, cabin environmental control and fuel system gauging, to name a few. One important function in the operation of any aircraft is a determination of the remaining fuel quantity available for the engines. Many techniques exist for the gauging or measurement of fuel quantity in an airplane. Several forms of sensors are known for measuring fuel levels, as well as critical flight information, that can be used in the determination of fuel quantity remaining in a fuel tank. More commonly, invasive sensors are deployed within a fuel tank that are used to measure fuel quantity through height and volume measurements. Invasive sensors, however, may introduce unwanted risks to an aircraft including, but not limited to, introducing electrical energy within the fuel tank. Non-invasive sensors in the fuel tank may be used to aid in a determination of fuel quantity. Such non-invasive sensors avoid some of the above risks and include, for example, accelerometers and transducers, to name a few. With the use of external, non-invasive sensors, maintenance of the fuel gauging system is also easier.
With the existence of many sophisticated electrical systems and subsystems in an aircraft, attempts have been made to control the operation of such electronics through computers. Both independent and centralized computer systems have been developed to control the operation of certain large and small electronic systems within an aircraft. Computer systems are also known for the determination of fuel quantity remaining in an aircraft fuel tank. Existing computer systems, however, are rudimentary and may not allow for the use of sophisticated software techniques such as those described above. What is lacking in the art is a sophisticated computer system environment for use in control of aircraft utilities in general. The prior art also lacks the advantage of an object-oriented software architecture that can easily be used in gauging the remaining fuel in an aircraft fuel tank.